package service

import (
	"el/app/libs"
	"el/app/models"
	"el/app/models/request"
	"errors"
	"strconv"
)

func VisitorLogin(visitorLogin *request.VisitorLogin) error {
	if visitorLogin.Id == "" {
		visitorLogin.Id = libs.Uuid()
	}

	admin := models.AdminUsers{Id: visitorLogin.AdminId}
	if err := admin.InfoById(); err != nil {
		return errors.New("客服不存在")
	}

	visitor := models.Visitor{VisitorId: visitorLogin.Id}
	visitor.InfoByVisitorId()

	visitor.ClientIp = visitorLogin.Ip
	visitor.SourceIp = visitorLogin.Ip
	visitor.Status = 1
	visitor.ToId = strconv.FormatInt(int64(visitorLogin.AdminId), 10)

	var visitorErr error
	if visitor.Id != 0 {
		visitorErr = visitor.Update()
	} else {
		visitorErr = visitor.Create()
	}

	if visitorErr != nil {
		return visitorErr
	}

	return nil
}
